A. Field of the Invention
This invention relates generally to the field of telecommunication and the processes by which digital data is transmitted between computer systems over a network or communications link. The invention is particularly suitable for use in devices that support Integrated Service Digital Network (ISDN) digital telephone services or the like, in which the digital data is transmitted via the ISDN or other digital line to a data terminal equipment (DTE), such as a computer.
B. Description of Related Art
In order for digital data to be transmitted from the source of the data (such as a computer) to a destination (such as another computer) over a network or telecommunication line, the data must be formated and presented to the transmission medium and the destination in a form that is compatible to the elements of the system. For example, if the source of the data wishes to compress the data using a particular data compression technique, the source and the destination must support both the chosen data compression algorithms.
It is a well known fact of life that the various computers in a network of computers may not have compatible data transmission and formatting software, due to the differences in technology available when the computers were purchased, the different options and features that may have been built into the computers subsequent to their purchase, or the fact that the owners of the computers on the network (such as the Internet) do not know or care about what features other computers on the network may support. When transmission of data in this situation is attempted, the lowest common denominator in terms of the communications protocols is determined during the call connect process. If the source of the data runs communications software that supports only basic communication protocols, but the destination runs backwardly compatible advanced protocols and compression functions, the call will typically proceed, but only in accordance with the basic communications protocols supported by the source.
The present invention addresses this problem by determining, in the call connect process, the communication protocols and compression techniques that are supported at both ends of the network, and by supporting multiple compression protocols and compression algorithms, so as to facilitate communication between the elements of the system. The invention does this automatically, and in a manner that is transparent to the user. Further, if the telecommunication line between the source and destination supports multiple communication channels (such as an ISDN line), the invention automatically enables the data to be transmitted through multiple communication channels. This has the effect of increasing data throughput, and significantly shortening the call connect time.
In order to better understand these and other advantages and features of the invention, a brief exposition of data communication technology and the Point-To-Point Protocol is set forth here.
The Open Systems Interconnect Reference Model is the standard model for describing the layers of functions and protocols necessary for data communications between computers. This well-known model consists of a hierarchy of seven layers of protocols which control the transmission of data from a source of the data to a destination via a network.
The lowest layer in the model is the physical layer, which manages the physical connection of network elements. The next two higher layers are the link layer and the network layer, respectively. The link layer, also known as the data link layer, manages the flow of data between the user and the network, or between a DTE and Data Communications Equipment (DCE). This layer's responsibility is to assure reliable and efficient data transfer, data formatting, the detection, correction and recovery of errors, data transparency, and some forms of addressing.
The network layer manages the details of transmitting data across the physical network between network elements, as well as between networks. The network layer also has the responsibility to define data call establishment procedures for packet and cell switched networks, and manage the segmentation and assembly of data across the network. The application layer is the top layer of the model, and manages the program or device that generates the data that is to be sent from the source through the network to the intended destination.
The Point-to-Point Protocol (PPP) provides a standard method of encapsulating network layer protocol information over point-to-point links. The PPP also defines an extensible Link Control Protocol (LCP), and proposes a family of Network Control Protocols (NCPs) for establishing and configuring different network-layer protocols. The PPP is described in detail in a series of documents that are available on-line. Persons of skill in the art are familiar with these documents, known as the Request For Comments. The Request For Comments (RFC) 1661, which is incorporated by reference herein, gives an informative overview of the PPP.
The initial deployment of the PPP has been over short local lines, leased lines, and plain-old-telephone-service (POTS) using modems. As new packet services and higher speed lines are introduced, PPP is easily deployed in these environments as well.
As noted above, the PPP has three main components:
1. A procedure for encapsulating datagrams over serial links;
2. A Link Control Protocol (LCP) for establishing, configuring, and testing the data-link connection; and
3. A family of Network Control Protocols (NCPs) for establishing and configuring different network-layer protocols.
In order to establish communications over a point-to-point link, each end of the PPP link must first send LCP packets to configure the data link during the Link Establishment phase. After the link has been established, PPP provides for an optional Authentication phase before proceeding to the Network-Layer Protocol phase.
By default, authentication (i.e., password identification) is not mandatory. If authentication of the link is desired, an implementation must specify the Authentication-Protocol Configuration Option during Link Establishment phase.
These authentication protocols are intended for use primarily by hosts and routers that connect to a PPP network server via switched circuits or dial-up lines, but might be applied to dedicated links as well. The server can use the identification of the connecting host or router in the selection of options for network layer negotiations.
PPP encapsulation of data communications is possible when the data is transmitted over digital communication lines, such as ISDN lines. ISDN lines comprise two data channels (referred to as bearer channels or "B" channels), and a control channel known as the "D" channel. The ISDN D-channel can also be used for sending PPP packets when suitably framed, but is limited in bandwidth and often restricts communication links to a local switch. Since the ISDN B-channel is by definition a point-to-point link, PPP is well suited to use over ISDN lines.
The ISDN Primary Rate Interface may support many concurrent B-channel links. The PPP Link Control Protocol and Network Control Protocol mechanisms are particularly useful in this situation in reducing or eliminating hand configuration, and facilitating ease of communication between diverse implementations.
In order to accommodate ISDN data links over multiple channels simultaneously, a protocol known as PPPML or PPP MultiLink is used. The PPP MultiLink protocol is described in the Request For Comments 1717, which is incorporated by reference herein.
In our invention, an element of communication equipment we have called a proxy engine is used in establishing a connection between the local endpoint application (i.e., the application running at the source of the data) and the application located at the far end of the network (i.e., the application running at the destination for the data). The application located at the destination is referred to herein as the "network endpoint application". The proxy engine, which in the preferred form constitutes a communication software structure, may be installed at the source, at the destination, or at both the source and destination. The term "proxy" is meant to indicate that the proxy engine is supplying the protocol feature or data compression on behalf of the local endpoint application. The term "engine" stems from the fact that the proxy engine actively provides or supports these protocol and/or compression features in real time during the call connection and data transfer process.
In our invention, the proxy engine conducts simultaneous communications sessions with the local endpoint application and the network endpoint application to determine what protocol features are supported by the endpoint applications. Additionally, the proxy engine supports or enables multiple advanced features available with the Point-To-Point Protocol, such as PPP MultiLink, various data compression techniques over PPP or PPP MultiLink, Challenge Handshake Application Protocol (CHAP) MD5, and any Link Control Protocol extensions that are implemented in the proxy engine, such as Link Control Protocol ECHO.sub.-- REQUEST, ECHO.sub.-- REPLIES, call back, endpoint identification, etc. Because these features are supported in the proxy engine, the user does not have to independently develop these features. The invention allows an application running above the proxy engine to "leverage", or take advantage of, all the advanced set of features described in the PPP Request For Comments, without supplementing any part of the PPP but the most basic feature of the set described in Request for Comments 1661, and possibly the Password Authentication Protocol and at least one Network Control Protocol.
Computers that implement the present invention will essentially level the playing field for all the endpoint applications, because the proxy engine makes up for and supports the data compression, multiple link, and authenticaion features that are lacking in the local endpoint application. The benefit to the user of the invention is thus increased throughput and data capacity over their existing equipment, because the proxy engine will provide the necessary protocol or compression features that may be lacking in the endpoint application.
In accordance with the present invention, the proxy engine learns each of the endpoint's particular configuration parameters, such as security information, network addressing, error correction routines and data compression technique, during communication sessions at the outset of the call connect process. To the user and the local endpoint application, it appears as though the local endpoint application is communicating directly with the network endpoint application, but in reality the local endpoint application is interfacing with the proxy engine. Similarly, the network endpoint application appears to be communicating directly with the local endpoint application, but is actually interfacing with the proxy engine. All of this is done in a manner that is transparent to the user at the local endpoint application, i.e, the user does not need to initiate any special configurations or take special action, as it occurs automatically. Thus, the invention provides for "spoofing" for quick determination and implementation of PPP network control protocols over one or more channels, and for data compression techniques, during the call connection process.